const baseURL = 'http://162.14.102.246:8090' //接口域名引入

// 拦截
let requestStart = function(params) {
	// 如果需要在接口参数中加入token,使用下边这段代码
	// let xdzn_token = uni.getStorageSync('xdzn_token') || '';
	// if (params.__proto__.constructor.name == "Object") {
	// 	xdzn_token && (params.xdzn_token = xdzn_token);
	// 	params = params;
	// } else if (params.__proto__.constructor.name == "FormData") {
	// 	xdzn_token && (params.append("xdzn_token", xdzn_token));
	// }

	// 如果需要显示加载动画
	uni.showNavigationBarLoading(); // 在当前页面显示导航条加载动画。
	uni.showLoading({
		title: '加载中',
		mask: true
	});
	return params;
}

// 对于 GET 方法，会将数据转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18。
// 对于 POST 方法且 header['content-type'] 为 application/json 的数据，会进行 JSON 序列化。
// 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据，会将数据转换为 query string。

export function get(url, params = {}) {
	return new Promise((resolve, reject) => {
		if (requestStart(params)) {
			uni.request({
				url: baseURL + url,
				data: params,
				header: {
					'content-type': 'application/json'
				},
				method: 'GET',
				success: (res) => {
					if (res.statusCode != 200) {
						uni.showToast({
							title: res.statusCode +'：'+ res.data.message,
							mask: true,
							icon: "none"
						});
						if(res.statusCode == 401){
							setTimeout(() => {
								uni.removeStorageSync('xdzn_token');
								//uni.removeStorageSync('userinfo');
								uni.navigateTo({
									url: 'pages/components/loginAndRegister',
									animationType: 'pop-in',
									animationDuration: 300
								})
							}, 1500)
						}
					}else{
						resolve(res);
						if (res.data.code == 0) {
							uni.showToast({
								title: res.data,
								mask: true,
								icon: "none" 
							});
						}
					}
				},
				fail: (res) => {
					reject(res)
				},
			});
		}
	});
}

export function post(url, params = {}) {
	return new Promise((resolve, reject) => {
		// 如果需要在header头中加入token，使用这段代码 header: header,
		if(uni.getStorageSync('token')){
			header.xdzn_token = uni.getStorageSync('xdzn_token')
		}
		if (requestStart(params)) {
			uni.request({
				url: baseURL + url,
				data: params,
				header: {
					'content-type': 'application/json'
				},
				method: 'POST',
				success: (res) => {
					if (res.statusCode != 200) {
						uni.showToast({
							title: res.statusCode +'：'+ res.data.message,
							mask: true,
							icon: "none"
						});
						if(res.statusCode == 401){
							setTimeout(() => {
								uni.removeStorageSync('xdzn_token');
								//uni.removeStorageSync('userinfo');
								uni.navigateTo({
									url: 'pages/components/loginAndRegister',
									animationType: 'pop-in',
									animationDuration: 300
								})
							}, 1500)
						}
					}else{
						resolve(res);
						if (res.data.code == 0) {
							uni.showToast({
								title: res.data,
								mask: true,
								icon: "none"
							});
						}
					}
				},
				fail: (res) => {
					reject(res)
				},
			});
		}

	});
}

var http = {
	post,
	get
};
export default http;